perm filename LOSS.1[AID,LSP]6 blob sn#702089 filedate 1983-02-07 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(LET ((FASLOAD ())) (FASLOAD UMATCH))
C00007 ENDMK
CāŠ—;
(LET ((FASLOAD ())) (FASLOAD UMATCH))
(load "umatch.127")
(car %/#p)
(car %/#d)
(step %umatch)
(trace %%umatch)

(%umatch '((all ?x (some ?y) (foo ?x ?y)))
	 '((all ?x (some ?y) (foo ?y ?x))))

(%umatch '((all ?x (some ?y) (foo ?x ?y)))
	 '((all ?x (some ?y) (foo ?X ?Y))))

(%umatch '(A ?X ?y) '(A ?y ?x))
(%umatch '(?X ?y) '(?y ?x))
(%umatch '(A *X B) '(A ?X ?Y B))

(%UMATCH '(A ?X B) '(A (?X) B))
(%UMATCH '(A ?X B) '(A ?X B))
(%umatch '(?q ?x) '(can-fly tweety))

(%umatch '((all ?x bird)(can-fly ?x))
	 '((ALL ?Y ?CLASS) (?Q ?Y)) )

(%umatch '((?a ?b ?c) ?d) '((all ?x ?foo) 4))

(let (fasload)(fasload umatch))
(%umatch-pair '((?a1 ?b1 ?c1) ?d1) '((?x1 ?y1 ?z1) ?w1))
(%umatch      '((?a1 ?b1 ?c1) ?d1) '((?x1 ?y1 ?z1) ?w1))
(%umatch '(($ch ?x) ?y)'(1 2))
(%umatch-PAIR '(= ($ch 1) 2)'(= ($ch ?x) ?y))
(%umatch-PAIR '(a  1 2)'(a ($ch ?x) ?y))
(%umatch-PAIR '(($CH 1) 2)'(($CH ?x) 2))

UMATCH-ALIST
(TRACE %%UMATCH)
(UNTRACE)
(MAKUNBOUND '?B)
(STEP CLAUSE-*-VARIABLE)
(%umatch '(?B B) '(*A B))
?B
*A
(%%special-formp '(-special-form- . *))

(%umatch '(foo *x bar *y baz) '(*z bar *q))
(%umatch '(bar *y baz) '(*z bar *q))
(%instantiate '(*z bar *q))
(%umatch '(foo *x baz) '(*z bar *q))

*x 
*y 
*z 
*q

(%umatch '(*x *y *z) '(?a ?b ?c))
(step %umatch)
(%umatch '(*x *Y) '(?a ?b))
(%umatch '(?a ?b ?c)'(*x *y *z) )
*x *y *z ?a ?b ?c
*x ?a ?b
(trace %%umatch)
(untrace)
(%umatch '(foo *x bar *y baz) '(*z bar *q))
(1 ENTER %%UMATCH ((FOO *X BAR *Y BAZ) (*Z BAR *Q) NIL NIL NIL NIL)) 
  (2 ENTER %%UMATCH ((BAR *Q) (FOO *X BAR *Y BAZ) NIL NIL ((*Z)) NIL)) 
  (2 ENTER %%UMATCH ((BAR *Q) (*X BAR *Y BAZ) NIL NIL ((*Z FOO)) NIL)) 
    (3 ENTER %%UMATCH ((BAR *Y BAZ) (BAR *Q) NIL NIL ((*X) (*Z FOO)) NIL)) 
      (4 ENTER %%UMATCH ((BAZ) (*Q) NIL NIL ((*Y) (*X) (*Z FOO)) NIL)) 
        (5 ENTER %%UMATCH (NIL (BAZ) NIL NIL ((*Q) (*Y) (*X) (*Z FOO)) 
NIL)) 
        (5 ENTER %%UMATCH (NIL NIL NIL NIL ((*Q BAZ) (*Y) (*X) (*Z FOO)) 
NIL)) 
      (4 ENTER %%UMATCH (NIL ((-SPECIAL-FORM- . *Y)) NIL NIL ((*Y) (*X) 
(*Z FOO)) NIL)) 
      (4 ENTER %%UMATCH ((BAZ) NIL NIL NIL ((*Y *Q) (*X) (*Z FOO)) NIL)) 
    (3 ENTER %%UMATCH ((BAR *Y BAZ) (*Q) NIL NIL ((*X BAR) (*Z FOO)) NIL)) 
      (4 ENTER %%UMATCH (NIL (BAR *Y BAZ) NIL NIL ((*Q) (*X BAR) (*Z FOO)) 
NIL)) 
      (4 ENTER %%UMATCH (NIL (*Y BAZ) NIL NIL ((*Q BAR) (*X BAR) (*Z FOO)) 
NIL)) 
        (5 ENTER %%UMATCH (NIL (BAZ) NIL NIL ((*Y) (*Q BAR) (*X BAR) (*Z 
FOO)) NIL)) 
      (4 ENTER %%UMATCH (NIL (BAZ) NIL NIL ((*Q BAR *Y) (*X BAR) (*Z FOO)) 
NIL)) 
      (4 ENTER %%UMATCH (NIL NIL NIL NIL ((*Q BAR *Y BAZ) (*X BAR) (*Z 
FOO)) NIL)) 
T